package com.tx.service;

import com.tx.entity.Blog;
import com.tx.entity.Comment;
import com.tx.entity.Page;
import com.tx.entity.Result;

import java.util.List;
import java.util.Map;

/**
 * @Author: tcx
 * @description: 博客信息业务层接口
 * @Date: 2019/11/5
 **/
public interface BlogService {
    /* *
     * @description: 添加博客
     * @author tcx
     * @date 2019/11/5
     * @param blog
     * @return void
     */
    Integer add(Blog blog);
    /* *
     * @description: 修改博客
     * @author tcx
     * @date 2019/11/5
     * @param blog
     * @return void
     */
    Integer edit(Blog blog);
    /* *
     * @description:  根据id删除博客
     * @author tcx
     * @date 2019/11/5
     * @param bId
     * @return void
     */
    Integer remove(Integer bId);
    /* *
     * @description:  根据id查询博客
     * @author tcx
     * @date 2019/11/5
     * @param bId
     * @return void
     */
    Blog get(Integer bId);
    /* *
     * @description:  查询所有博客
     * @author tcx
     * @date 2019/11/5
     * @param
     * @return java.util.List<com.tx.entity.Blog>
     */
    List<Blog> getAll();
    /* *
     * @description:  根据关键字查询博客
     * @author tcx
     * @date 2019/11/5
     * @param key
     * @return java.util.List<com.tx.entity.Blog>
     */
    Result getAllByKey(Page page,String key);
    /* *
     * @description:  根据用户id获取用户博客
     * @author tcx
     * @date 2019/11/10
     * @param uId
     * @return java.util.List<com.tx.entity.Blog>
     */
    Result getAllByUser(Page page,Integer uId);
    /* *
     * @description:  根据用户id获得用户发表博客总数
     * @author tcx
     * @date 2019/11/10
     * @param uId
     * @return java.lang.Integer
     */
    Integer getByUserCount(Integer uId);
    /* *
     * @description:  分页查询所有博客
     * @author tcx
     * @date 2019/11/12
     * @param page
     * @return java.util.List<com.tx.entity.Blog>
     */
    Result getBlogByPage(Page page);
    /* *
     * @description:  根据分类查询所有博客
     * @author tcx
     * @date 2019/11/13
     * @param page
     * @param tId
     * @return com.tx.entity.Result
     */
    Result getBlogByTypePage(Page page,Integer tId);
    /* *
     * @description:  查询最新发布的十条博客
     * @author tcx
     * @date 2019/11/13
     * @param
     * @return java.util.List<com.tx.entity.Blog>
     */
    List<Blog> getNew();
    /* *
     * @description:  根据博客id查询评论
     * @author tcx
     * @date 2019/11/13
     * @param bId
     * @return java.util.List<com.tx.entity.Comment>
     */
    List<Comment> getCommentByBlog(Integer bId);
    /* *
     * @description:  添加评论
     * @author tcx
     * @date 2019/11/13
     * @param comment
     * @return void
     */
    void addComment(Comment comment);
    /* *
     * @description:  查询用户最新十条博客
     * @author tcx
     * @date 2019/11/16
     * @param uId
     * @return java.util.List<com.tx.entity.Blog>
     */
    List<Blog> getUserNew(Integer uId);
    //删除评论
    Integer removeComm(Integer cId);
    /* *
     * @description:  查询所有博客总数
     * @author tcx
     * @date 2020/1/13
     * @param  
     * @return int
     */
    Integer getBlogCount();

    Integer getTotal(Map<String,Object> map);


    List<Blog> list(Map<String,Object> map);

    List<Comment> getCommentAll(Map<String,Object> map);
    Integer getTotalComm(Map<String,Object> map);
    Integer editComm(Comment comment);
    //获取用户评论未读消息
    Integer getComStateCount(Map<String,Object> map);

    Integer editCommState(Integer cId);
}
